LEX=flex
YACC=bison
CC=g++ -std=c++11
OBJECT=main

$(OBJECT): lex.yy.o myparse.tab.o absyn.o main.o
	$(CC) lex.yy.o myparse.tab.o absyn.o main.o -o $(OBJECT)

main.o : main.cpp 
	$(CC) -c main.cpp

absyn.o : absyn.cpp
	$(CC) -c absyn.cpp

lex.yy.o: lex.yy.c myparse.tab.h
	$(CC) -c lex.yy.c

myparse.tab.o: myparse.tab.c
	$(CC) -c myparse.tab.c

myparse.tab.c myparse.tab.h: myparse.y
	$(YACC) -d myparse.y

lex.yy.c: mylexer.l
	$(LEX) mylexer.l

clean:
	@rm -f $(OBJECT)  *.o

